/*
* leetcode 260. 只出现一次的数字 III
*
给你一个整数数组 nums，其中恰好有两个元素只出现一次，其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。
你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。


示例 1：

输入：nums = [1,2,1,3,2,5]
输出：[3,5]
解释：[5, 3] 也是有效的答案。
* */
/*
* */
import java.util.*;
class Solution {
    public int[] singleNumber(int[] nums) {
        int eor=0;
        int[] ans=new int[2];
        for(int num:nums){
            eor^=num;
        }
        int rightOne=eor&(~eor+1);
        for(int num:nums){
            if((num&rightOne)==0){
                ans[0]^=num;
            }
        }
        ans[1]=eor^ans[0];
        return ans;
    }
}